﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SpotifyGenNHibernate.EN.Spotify;
using SpotifyGenNHibernate.CEN.Spotify;
using SpotifyGenNHibernate.CAD.Spotify;


namespace initializeDB
{
    public partial class frmMenu : Form
    {
        private UsuarioEN usuarioActual = null;

        public frmMenu()
        {
            InitializeComponent();
        }

        public frmMenu(UsuarioEN usu)
        {
            InitializeComponent();
            usuarioActual = usu;
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void btnComprar_Click(object sender, EventArgs e)
        {
            Form frmComprarCancion = new frmComprarCancion(usuarioActual);
            frmComprarCancion.Show();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Estás seguro que desea subscribirse?", "Aviso", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                string evento = "RealizarSubscripcion";
                UsuarioCAD usuCAD = new UsuarioCAD();
                UsuarioCEN usuCEN = new UsuarioCEN(usuCAD);
                try
                {
                    if (usuCEN.ValidarEstado(evento, usuarioActual.Tipo))
                    {
                        usuCEN.RealizarSubscripcion(usuarioActual.Nombre);
                        usuarioActual = usuCEN.obtenerUsuario(usuarioActual.Nombre);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message,"Excepcion");
                }
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Estás seguro que desea eliminar su subscripcion?", "Aviso", MessageBoxButtons.OKCancel) == DialogResult.OK)
            {
                string evento = "BorrarSubscripcion";
                UsuarioCAD usuCAD = new UsuarioCAD();
                UsuarioCEN usuCEN = new UsuarioCEN(usuCAD);
                try
                {
                    if (usuCEN.ValidarEstado(evento, usuarioActual.Tipo))
                    {
                        usuCEN.CancelarSubscripcion(usuarioActual.Nombre);
                        usuarioActual = usuCEN.obtenerUsuario(usuarioActual.Nombre);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Excepcion");
                }
            }
        }

        private void btEscucharCancion_Click(object sender, EventArgs e)
        {
            //Actualizar el usuario por si cola es null o no lo es
            UsuarioCAD usuCAD = new UsuarioCAD();
            UsuarioCEN usuCEN = new UsuarioCEN(usuCAD);
            usuarioActual = usuCEN.obtenerUsuario(usuarioActual.Nombre);

            Form frmEscucharCancion = new frmEscucharCancion(usuarioActual);
            frmEscucharCancion.ShowDialog();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //Actualizar el usuario por si cola es null o no lo es
            UsuarioCAD usuCAD = new UsuarioCAD();
            UsuarioCEN usuCEN = new UsuarioCEN(usuCAD);
            usuarioActual = usuCEN.obtenerUsuario(usuarioActual.Nombre);

            if (usuarioActual.ColaReproduccion == null)
            {
                MessageBox.Show("Busca alguna cancion y añadela para crear una cola de reproducción", "Necesitas alguna cancion");
            }
            else
            {

                Form frmEscucharCola = new frmEscucharCola(usuarioActual);
                frmEscucharCola.ShowDialog();
            }
        }
    }
}
